package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 会员积分规则（存储各门店的积分获取与抵现规则）对象 member_points_rule
 *
 * @author ruoyi
 * @date 2025-05-14
 */
@ApiModel("会员积分规则")
@Data
public class MemberPointsRule extends AbdulBaseEntity {
    private static final long serialVersionUID = 1L;

    /** 自增主键，唯一标识每条积分规则记录 */
    @ApiModelProperty("自增主键，唯一标识每条积分规则记录")
    private Long id;

    /** 门店名称（如“北京朝阳店”“上海浦东店”） */
    @Excel(name = "门店名称", readConverterExp = "如=“北京朝阳店”“上海浦东店”")
    @ApiModelProperty("门店名称（如“北京朝阳店”“上海浦东店”）")
    private String storeName;

    /** 门店编号（唯一标识门店，如“BJCYD001”“SHPD002”） */
    @Excel(name = "门店编号", readConverterExp = "唯=一标识门店，如“BJCYD001”“SHPD002”")
    @ApiModelProperty("门店编号（唯一标识门店，如“BJCYD001”“SHPD002”）")
    private String storeCode;

    /** 积分获取规则（JSON格式或文本描述，如“消费1元=1积分”“生日当天双倍积分”等） */
    @Excel(name = "积分获取规则", readConverterExp = "J=SON格式或文本描述，如“消费1元=1积分”“生日当天双倍积分”等")
    @ApiModelProperty("积分获取规则（JSON格式或文本描述，如“消费1元=1积分”“生日当天双倍积分”等）")
    private String pointsAcquisitionRule;

    /** 积分抵现规则（JSON格式或文本描述，如“100积分=1元”“积分不可与其他优惠叠加”等） */
    @Excel(name = "积分抵现规则", readConverterExp = "J=SON格式或文本描述，如“100积分=1元”“积分不可与其他优惠叠加”等")
    @ApiModelProperty("积分抵现规则（JSON格式或文本描述，如“100积分=1元”“积分不可与其他优惠叠加”等）")
    private String pointsRedemptionRule;

    /** 规则状态（ACTIVE: 生效，INACTIVE: 禁用，ARCHIVED: 已归档） */
    @Excel(name = "规则状态", readConverterExp = "A=CTIVE:,生=效，INACTIVE:,禁=用，ARCHIVED:,已=归档")
    @ApiModelProperty("规则状态（ACTIVE: 生效，INACTIVE: 禁用，ARCHIVED: 已归档）")
    private String status;

    /** 规则生效开始日期（YYYY-MM-DD） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "规则生效开始日期", readConverterExp = "Y=YYY-MM-DD")
    @ApiModelProperty("规则生效开始日期（YYYY-MM-DD）")
    private Date effectiveStartDate;

    /** 规则生效结束日期（YYYY-MM-DD） */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "规则生效结束日期", readConverterExp = "Y=YYY-MM-DD")
    @ApiModelProperty("规则生效结束日期（YYYY-MM-DD）")
    private Date effectiveEndDate;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}